# 储存所有EXCEL读取格式
class excelReadType:
    def __init__(self):
        self.ReadDicForType = {}  # 储存EXCEL读取格式对象的字典，key为道具 type
        self.ReadDicForName = {}  # 储存EXCEL读取格式对象的字典，key为道具 name
        self.erro = []  # 储存错误信息的列表

    def setExcelReadType(self, dic):
        """
        设置EXCEL读取格式\n
        :param dic: EXCEL读取设置中配置文件的数据
        :return: 设置成功返回True
        """
        isOk = True
        for key, value in dic.items():
            read_type = readType()
            read_type.NAME = key
            read_type.TYPE = value['type']
            read_type.INDEX = value['index']
            if '演示' not in key:
                if len(value['type']) > 0:
                    for excelType in value['type']:
                        if excelType not in self.ReadDicForType.keys():
                            self.ReadDicForType[excelType] = read_type
                else:
                    self.erro.append(f'{key}表格 type 错误，请检查配置是否正确')
                    isOk = False

                if len(value['index']) >= 2:
                    if key not in self.ReadDicForName.keys():
                        self.ReadDicForName[key] = read_type
                else:
                    self.erro.append(f'{key}表格 index 错误，请检查配置是否正确')
                    isOk = False
        return isOk

    def getReadTypeForType(self, typeNumber):
        """
        通过道具类型获取对应的 ReadType 对象\n
        :param typeNumber: 道具类型编码
        :return: 返回 ReadType 对象
        """
        typeNumber = int(typeNumber)
        if typeNumber in self.ReadDicForType.keys():
            read_type = self.ReadDicForType[typeNumber]
            return read_type
        else:
            return None

    def getReadTypeForName(self, excel):
        """
        通过excel名称获取对应的 ReadType 对象\n
        :param excel: EXCEL名称
        :return: 返回 ReadType 对象
        """
        if excel in self.ReadDicForName.keys():
            read_type = self.ReadDicForName[excel]
            return read_type
        else:
            return None


# 储存单个EXCEL读取格式配置
class readType:
    def __init__(self):
        self.NAME = None  # 字符串
        self.TYPE = None  # 列表
        self.INDEX = None  # 列表
